Printer with fast line-feed speed

ABSTRACT

A printer that prints an image having a resolution higher than a resolution of nozzles on a print head on a recording medium by scanning the print head across a region of the recording medium a plural-number of times, said print head having nozzles spaced at a nozzle pitch which is a reciprocal number of the resolution of the nozzles and adapted to eject ink from the nozzles on the basis of print data. The printer has a line feeding motor that is actuated in a unit of a pulse, and a line feeding device, driven by the line feeding motor actuated in the unit of the pulse, for feeding the recording medium in a unit of a predetermined feeding length fed by an actuating pulse, the predetermined feeding length being (m/k×nozzle pitch), where k is the resolution of the printed image/the resolution of the nozzles, m and k are integers, and m is greater than k but indivisible by k. A controller controls the line feeding motor to actuate in the unit of the pulse and control a number of the nozzles utilized for printing the image when printing an image on the recording medium by scanning the print head across the recording medium a plural-number of times.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to feeding of a recording medium inprinters. More specifically, the present invention relates to control ofline feeding of a recording medium in conjunction with print head nozzlefiring so as to advance the recording medium for high resolutionprinting with a lower amount of line feeding motor steps.

2. Description of the Related Art

Line feeding in printers refers to the advancement of a recording mediumthrough the printer during printing operations. During printingoperations, the recording medium is fed through the printer by line feedrollers that are driven by a line feed motor controlled by a controller.The line feed motor and the line feed rollers are connected by adrivetrain so that as the line feed motor rotates, the line feed rollersalso rotate. The recording medium is fed between the line feed rollersand pinch rollers and as the line feed rollers rotate, the recordingmedium is fed through the printer.

One type of line feed motor is known as a stepper motor. A stepper motorrotates in steps, i.e. stepped increments or pulses. Each increment orpulse corresponds to a predetermined amount (or phase) of rotation. Someof the most common stepper motors used in printers have steppedincrements of 1.8° (corresponding to a 200 pulse motor where 200pulses×1.8°=360°), 3.6° (corresponding to a 100 pulse motor), and 3.75°(corresponding to a 96 pulse motor). For each increment (pulse) that theline feed motor rotates, the line feed rollers also rotate and feed therecording medium a horizontal amount corresponding to the amount ofrotation of the line feed rollers. The amount of rotation of the linefeed rollers is determined by the drivetrain ratio employed between theline feed motor and the line feed rollers.

Conventionally, the drivetrain ratio has been set so that one pulse ofthe line feed motor advances the recording medium an amount equivalentto the maximum resolution of the printer. For example, where the maximumresolution of a printout of the printer is 600 dpi (dots per inch), thedrivetrain ratio has been set so that one pulse of the line feed motorcorresponds to a 600 dpi pitch line feed of the recording medium. Thus,the line feed ratio to obtain a 600 dpi resolution printout would be1/600 (1 pulse equals 600 dpi advancement of the recording medium).

In order to obtain higher resolution printouts, such as a 1200 dpiprintout, additional motor pulses are required. Consider, for example, aprint head having 100 nozzles spaced at a 600 dpi pitch printing a 1200dpi image. The print head performs two scans across the same scan areato perform 1200 dpi printing (a first scan printing at 600 dpi and asecond scan also printing at 600 dpi after a 1200 dpi paperadvancement). After the second scan, the paper is advanced to the end ofthe 100 nozzle printout. In order to advance the paper to the end of the100 nozzle print, 200 pulses of the motor would be required (it takes 2pulses to advance the paper one 600 dpi pixel, therefore it takes 200pulses to advance the paper 100 pixels). The 200 pulses result in aslower line feed speed than would otherwise be required if less motorpulses were needed to advance the paper the same 100 pixel amount. Thus,what is needed is a way to increase the line feed speed at higherresolutions.

It has been proposed that, to increase the line feed speed, that themotor speed itself could be increased. However, higher resolutionprintouts also require a higher degree of accuracy of the motor. Fasterand more accurate motors are expensive and increase the cost of theprinter. Therefore, what is needed is a way to increase the line feedspeed at higher resolutions and to maintain accuracy without asignificant increase in the motor cost.

SUMMARY OF THE INVENTION

The present invention addresses the foregoing by feeding the recordingmedium a fractional amount greater than the maximum resolution of theprinter for each increment (phase) of the line feed motor andcontrolling a number of nozzles that eject ink based on the number ofincrements. In one representative embodiment, each increment of the linefeed motor results in a 1.5 pixel advancement of the recording medium ina pixel resolution of a print head. A comparison of this embodiment tothe above described example in which a 1/600 feeding ratio results, thepresent invention results in a 1/400 feeding ratio for the same motor.Therefore, less line feed motor increments are required to advance therecording medium an equivalent amount. Since less motor increments arerequired, the line feed speed is increased. Moreover, controlling thenozzle firing provides for adjustment of the nozzle firing for thefractional increments, thereby providing for printing a continuousimage.

Thus, in one aspect the invention is printing images on a recordingmedium fed through a printer by actuating a line feeding motor inpredetermined stepped increments, feeding the recording medium throughthe printer by a line feeding device driven by the line feeding motor,printing an image on the recording medium by a print head scanningacross the recording medium and ejecting ink from nozzles, the printhead having j nozzles spaced at a predetermined pixel resolution that isless than a pixel resolution printed by the printer, j being an integernumber, controlling the line feed motor to actuate in steppedincrements, and controlling a number of the j nozzles utilized inprinting the image. For each stepped increment of the line feed motor,the line feeding device feeds the recording medium (m×1/n) pixels of theprint head pixel resolution, where m and n are integer numbers and m isgreater than n. The j nozzles that print in any one scan of the printhead are controlled based on the number of increments of the line feedmotor.

In a related aspect, the invention is feeding a recording medium througha printer for printing images on the recording medium by actuating aline feeding motor in stepped increments, feeding the recording mediumthrough the printer by a line feeding device driven by the line feedingmotor, and performing banded printing of an image on the recordingmedium by a print head scanning across the recording medium, the printhead having nozzles spaced at a first resolution. One increment of theline feeding motor results in a feed amount of m/n times the print headnozzle spacing, where m/n is greater than 1, and m and n are integervalues where m is greater than n, and, to print the image, the linefeeding motor is actuated n increments, or an integer multiple of nincrements between bands.

In other aspects, m may be equal to 3 and n equal to 2. The number ofincrements of the line feed motor may equal 2 so that every 2 incrementsequals a line feed of 3 pixels in the pixel resolution printed by theprinter. The number of nozzles, j, may equal 304 or 80, and 300 or less,or 78 or less nozzles may be utilized to print in any one scan of theprint head. The j nozzles may be spaced at a 600 dpi resolution and theprinted resolution of the printer may be 1200 dpi.

In another aspect, the invention processes image data to be sent to aprinter by performing rasterization, color conversion and halftoneprocessing on the image data, storing the processed image data in aprint buffer for transmission to the printer, calculating a line skipamount, calculating a buffer offset amount, and adjusting a startingposition for storing of the image data in the print buffer based on aresult of the calculated buffer offset amount. The line skip amount andthe buffer offset amount are calculated in a case where a first line ofimage data to be stored in the print buffer is white data. Additionally,the printer has a line feed ratio of m×1/n in a pixel resolution of aprint head, where m and n are integer numbers greater than 1, m isgreater than n, and the line skip amount and the buffer offset amountare calculated based on the line feed ratio.

In a related aspect, the invention processes image data to be sent to aprinter that prints image data on a recording medium at a print pixelresolution greater than a resolution of a print head and feeds therecording medium in units of a feed amount corresponding to (m×1/n)pixels of the print head resolution, where m and n are integer numbersand m is greater than n, the image process comprising generating a lineof image data, determining whether at least a number of contiguous linesof image data do not include a pixel to be printed, the number ofcontiguous lines corresponding to the feed amount unit, and sending lineskip amount information to the printer based on a result of thedetermining step. The determining, step comprises storing the line ofimage data in a print buffer for transmission to the printer, andcalculating the line skip amount. The determining step may furthercomprise calculating a buffer offset amount, and adjusting a startingposition for storing the image data in the print buffer based on aresult of the calculated buffer offset amount. The skip amount and thebuffer offset amount are calculated in a case where a first line ofimage data to be stored in the print buffer is white data.

As a result of the foregoing, the invention controls a line feed amountand loading of image data in a print buffer to adjust for white imagedata encountered as at least the first line of the image data beingloaded in the buffer. Therefore, the line feed ratio and line feedamount for advancing the recording medium to adjust for the white spaceis accommodated to provide for a faster line feed speed while at thesame time controlling the data loading.

This brief summary has been provided so that the nature of the inventionmay be understood quickly. A more complete understanding of theinvention can be obtained by reference to the following detaileddescription of the preferred embodiment thereof in connection with theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a perspective view of computing equipment used inconnection with the printer of the present invention.

FIG. 2 is a front perspective view of the printer shown in FIG. 1.

FIG. 3 is a back perspective view of the printer shown in FIG. 1.

FIG. 4 is a back, cut-away perspective view of the printer shown in FIG.1.

FIG. 5 is a front, cut-away perspective view of the printer shown inFIG. 1.

FIGS. 6A and 6B show a geartrain configuration for an automatic sheetfeeder of the printer shown in FIG. 1.

FIG. 7 is a cross-section view through a print cartridge and ink tank ofthe printer of FIG. 1.

FIG. 8 is a plan view of a print head and nozzle configuration of theprint cartridge of FIG. 7.

FIG. 9 is a block diagram showing the hardware configuration of a hostprocessor interfaced to the printer of the present invention.

FIG. 10 shows a functional block diagram of the host processor andprinter shown in FIG. 8.

FIG. 11 is a block diagram showing the internal configuration of thegate array shown in FIG. 9.

FIG. 12 shows the memory architecture of the printer of the presentinvention.

FIG. 13 is a side view of one possible line feed geartrain.

FIG. 14 is a top view of one possible line feed geartrain.

FIG. 15 is a diagram for calculating a line feed amount and papervelocity utilizing the geartrain of FIGS. 13 and 14.

FIG. 16A depicts a sample pattern of ink droplets printed at a 600×600dpi resolution.

FIG. 16B depicts a sample pattern of ink droplets printed at a 600×600dpi resolution.

FIGS. 16C and 16D depict a print head nozzle location in a line feeddirection for each pulse of a line feed motor.

FIG. 17 is a flowchart depicting process steps of a first embodiment forcontrolling line feed and buffer loading for printing involving whitespace.

FIG. 18 is a flowchart depicting process steps of a second embodimentfor controlling line feed and buffer loading for printing involvingwhite space.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 is a view showing the outward appearance of computing equipmentused in connection with the invention described herein. Computingequipment 1 includes host processor 2. Host processor 2 comprises apersonal computer (hereinafter “PC”), preferably an IBM PC-compatiblecomputer having a windowing environment, such as Microsoft® Windows95.Provided with computing equipment 1 are display 4 comprising a colormonitor or the like, keyboard 5 for entering text data and usercommands, and pointing device 6. Pointing device 6 preferably comprisesa mouse for pointing and for manipulating objects displayed on display4.

Computing equipment 1 includes a computer-readable memory medium, suchas fixed computer disk 8, and floppy disk interface 9. Floppy diskinterface 9 provides a means whereby computing equipment 1 can accessinformation, such as data, application programs, etc., stored on floppydisks. A similar CD-ROM interface (not shown) may be provided withcomputing equipment 1, through which computing equipment 1 can accessinformation stored on CD-ROMs.

Disk 8 stores, among other things, application programs by which hostprocessor 2 generates files, manipulates and stores those files on disk8, presents data in those files to an operator via display 4, and printsdata in those files via printer 10. Disk 8 also stores an operatingsystem which, as noted above, is preferably a windowing operating systemsuch as Windows95. Device drivers are also stored in disk 8. At leastone of the device drivers comprises a printer driver which provides asoftware interface to firmware in printer 10. Data exchange between hostprocessor 2 and printer 10 is described in more detail below.

FIGS. 2 and 3 show perspective front and back views, respectively, ofprinter 10. As shown in FIGS. 2 and 3, printer 10 includes housing 11,access door 12, automatic feeder 14, automatic feed adjuster 16, mediaeject port 20, ejection tray 21, power source 27, power cord connector29, parallel port connector 30 and universal serial bus (USB) connector33.

Housing 11 houses the internal workings of printer 10, including a printengine which controls the printing operations to print images ontorecording media. Included on housing 11 is access door 12. Access door12 is manually openable and closeable so as to permit a user to accessthe internal workings of printer 10 and, in particular, to access inktanks installed in printer 10 so as to allow the user to change orreplace the ink tanks as needed. Access door 12 also includes indicatorlight 23, power on/off button 26 and resume button 24. Indicator light23 may be an LED that lights up to provide an indication of the statusof the printer, i.e. powered on, a print operation in process(blinking), or a failure indication. Power on/off button 26 may beutilized to turn the printer on and off and resume button 24 may beutilized to reset an operation of the printer.

As shown in FIGS. 2 and 3, automatic feeder 14 is also included onhousing 11 of printer 10. Automatic feeder 14 defines a media feedportion of printer 10. That is, automatic feeder 14 stores recordingmedia onto which printer 10 prints images. In this regard, printer 10 isable to print images on a variety of types of recording media. Thesetypes include, but are not limited to, plain paper, high resolutionpaper, transparencies, glossy paper, glossy film, back print film,fabric sheets, T-shirt transfers, bubble jet paper, greeting cards,brochure paper, banner paper, thick paper, etc.

During printing, individual sheets which are stacked within automaticfeeder 14 are fed from automatic feeder 14 through printer 10. Automaticfeeder 14 includes automatic feed adjuster 16. Automatic feed adjuster16 is laterally movable to accommodate different media sizes withinautomatic feeder 14. These sizes include, but are not limited to,letter, legal, A4, B5 and envelope. Custom-sized recording media canalso be used with printer 10. Automatic feeder 14 also includes backing31, which is extendible to support recording media held in automaticfeeder 14. When not in use, backing 31 is stored within a slot inautomatic feeder 14, as shown in FIG. 2.

As noted above, media are fed through printer 10 and ejected from ejectport 20 into ejection tray 21. Ejection tray 21 extends outwardly fromhousing 11 as shown in FIG. 2 and, provides a receptacle for therecording media upon ejection for printer 10. When not in use, ejectiontray 21 may be stored within printer 10.

Power cord connector 29 is utilized to connect printer 10 to an externalAC power source. Power supply 27 is used to convert AC power from theexternal power source, and to supply the converted power to printer 10.Parallel port 30 connects printer 10 to host processor 2. Parallel port30 preferably comprises an IEEE-1284 bi-directional port, over whichdata and commands are transmitted, between printer 10 and host processor2. Alternatively, data and commands can be transmitted to printer 10through USB port 33.

FIGS. 4 and 5 show back and front cut-away perspective views,respectively, of printer 10. As shown in FIG. 4, printer 10 includes anautomatic sheet feed assembly (ASF) that comprises automatic sheetfeeder 14, ASF rollers 32 a, 32 b and 32 c attached to ASF shaft 38 forfeeding media from automatic feeder 14. ASF shaft 38 is driven by drivetrain assembly 42. Drive train assembly 42 is made up of a series ofgears that are connected to and driven by ASF motor 41. Drive trainassembly 42 is described in more detail below with reference to FIGS. 6Aand 6B. ASF motor 41 is preferably a stepper motor that rotates instepped increments (pulses). Utilization of a stepper motor provides theability for a controller incorporated in circuit board 35 to count thenumber of steps the motor rotates each time the ASF is actuated. Assuch, the position of the ASF rollers at any instant can be determinedby the controller. ASF shaft 38 also includes an ASF initializationsensor tab 37 a. When the ASF shaft is positioned at a home position(initialization position), tab 37 a is positioned between ASFinitialization sensors 37 b. Sensors 37 b are light beam sensors, whereone is a transmitter and the other a receiver such that when tab 37 a ispositioned between sensors 37 b, tab 37 a breaks continuity of the lightbeam, thereby indicating that the ASF is at the home position.

Also shown in FIG. 4 is a page edge (PE) detector lever 58 a and PEsensors 58 b. PE sensors 58 b are similar to ASF initialization sensors37 b. That is, they are light beam sensors. PE lever 58 a is pivotallymounted and is actuated by a sheet of the recording medium being fedthrough the printer 10. When no recording medium is being fed throughprinter 10, lever 58 a is at a home position and breaks continuity ofthe light beam between sensors 58 b. As a sheet of the recording mediumbegins to be fed through the printer by the ASF rollers, the leadingedge of the recording medium engages PE lever 58 a pivotally moving thelever to allow continuity of the light beam to be established betweensensors 58 b. Lever 58 a remains in this position while the recordingmedium is being fed through printer 10 until the trailing edge of therecording medium reaches PE lever 58 a, thereby disengaging lever 58 afrom the recording medium and allowing lever 58 a to return to its homeposition to break the light beam. The PE sensor is utilized in thismanner to sense when a page of the recording medium is being fed throughthe printer and the sensors provide feedback of such to a controller oncircuit board 35.

ASF gear train assembly 42 may appear as shown in FIGS. 6A and 6B. Asshown in FIG. 6A, gear train assembly 42 comprises gears 42 a, 42 b and42 c. Gear 42 b is attached to the end of ASF shaft 38 and turns theshaft when ASF motor 41 is engaged. Gear 42 a engages gear 42 b andincludes a cam 42 d that engages an ASF tray detent arm 42 e ofautomatic feeder 14. As shown in FIG. 6A, when ASF shaft 38 ispositioned at the home position, cam 42 d presses against detent arm 42e. Automatic feeder 14 includes a pivotally mounted plate 50 that isbiased by spring 48 so that when cam 42 d engages detent arm 42 e,automatic feeder 14 is depressed and when cam 42 d disengages detent arm42 e (such as that shown in FIG. 6B), plate 50 is released. Depressingdetent arm 42 e causes the recording media stacked in automatic feeder14 to move away from ASF rollers 32 a, 32 b and 32 c and releasingdetent arm 42 e allows the recording to move close to the rollers sothat the rollers can engage the recording medium when the ASF motor isengaged.

Returning to FIG. 4, printer 10 includes line feed motor 34 that isutilized for feeding the recording medium through printer 10 duringprinting operations. Line feed motor 34 drives line feed shaft 36, whichincludes line feed pinch rollers 36 a, via line feed geartrain 40. Thegeartrain ratio for line feed geartrain 40 is set to advance therecording medium a set amount for each pulse of line feed motor 34. Theratio may be set so that one pulse of line feed motor 34 results in aline feed amount of the recording medium equal to a one pixel resolutionadvancement of the recording medium. That is, if one pixel resolution ofthe printout of printer 10 is 600 dpi (dots per inch), the geartrainratio may be set so that one pulse of line feed motor 34 results in a600 dpi advancement of the recording medium. Alternatively, the ratiomay be set so that each pulse of the motor results in a line feed amountthat is equal to a fractional portion of one pixel resolution ratherthan being a one-to-one ratio. Line feed motor 34 preferably comprises a200-step, 2 phase pulse motor and is controlled in response to signalcommands received from circuit board 35 of course, line feed motor 34 isnot limited to a 200-step 2 phase pulse motor and any other type of linefeed motor could be employed, including a DC motor with an encoder.

As shown in FIG. 5, printer 10 is a single cartridge printer whichprints images using dual print heads, one having nozzles for printingblack ink and the other having nozzles for printing cyan, magenta andyellow inks. Specifically, carriage 45 holds cartridge 28 thatpreferably accommodates ink tanks 43 a, 43 b, 43 c and 43 d, eachcontaining a different colored ink. A more detailed description ofcartridge 28 and ink tanks 43 a to 43 d is provided below with regard toFIG. 7. Carriage 45 is driven by carriage motor 39 in response to signalcommands received from circuit board 35. Specifically, carriage motor 39controls the motion of belt 25, which in turn provides for horizontaltranslation of carriage 45 along carriage guide shaft 51. In thisregard, carriage motor 39 provides for bi-directional motion of belt 25,and thus of carriage 45. By virtue of this feature, printer 10 is ableto perform bi-directional printing, i.e. print images from both left toright and right to left.

Printer 10 preferably includes recording medium cockling ribs 59. Ribs59 induce a desired cockling pattern into the recording medium which theprinter can compensate for by adjusting the firing frequency of theprint head nozzles. Ribs 59 are spaced a set distance apart, dependingupon the desired cockling shape. The distance between ribs 59 may bebased on motor pulses of carriage motor 39. That is, ribs 59 may bepositioned according to how many motor pulses of carriage motor 39 ittakes for the print head to reach the location. For example, ribs 59 maybe spaced in 132 pulse increments.

Printer 10 also preferably includes pre-fire receptacle areas 44 a, 44 band 44 c, wiper blade 46, and print head caps 47 a and 47 b. Receptacles44 a and 44 b are located at a home position of carriage 45 andreceptacle 44 c is located outside of a printable area and opposite thehome position. At desired times during printing operations, a print headpre-fire operation may be performed to eject a small amount of ink fromthe print heads into receptacles 44 a, 44 b and 44 c. Wiper blade 46 isactuated to move with a forward and backward motion relative to theprinter. When carriage 45 is moved to its home position, wiper blade 46is actuated to move forward and aft so as to traverse across each of theprint heads of cartridge 28, thereby wiping excess ink from the printheads. Print head caps 47 a and 47 b are actuated in a relative up anddown motion to engage and disengage the print heads when carriage 45 isat its home position. Caps 47 a and 47 b are actuated by ASF motor 41via a geartrain (not shown). Caps 47 a and 47 b are connected to arotary pump 52 via tubes (not shown). Pump 52 is connected to line feedshaft 36 via a geartrain (not shown) and is actuated by running linefeed motor 34 in a reverse direction. When caps 47 a and 47 b areactuated to engage the print heads, they form an airtight seal such thatsuction applied by pump 52 through the tubes and caps 47 a and 47 bsucks ink from the print head nozzles through the tubes and into a wasteink container (not shown). Caps 47 a and 47 b also protect the nozzlesof the print heads from dust, dirt and debris.

FIG. 7 is a cross section view through one of the ink tanks installed incartridge 28. Ink cartridge 28 includes cartridge housing 55, printheads 56 a and 56 b, and ink tanks 43 a, 43 b, 43 c and 43 d. Cartridgebody 28 accommodates ink tanks 43 a to 43 d and includes ink flow pathsfor feeding ink from each of the ink tanks to either of print heads 56 aor 56 b. Ink tanks 43 a to 43 d are removable from cartridge 28 andstore ink used by printer 10 to print images. Specifically, ink tanks 43a to 43 d are inserted within cartridge 28 and can be removed byactuating retention tabs 53 a to 53 d, respectively. Ink tanks 43 a to43 d can store color (e.g., cyan, magenta and yellow) ink and/or blackink. The structure of ink tanks 43 a to 43 b may be similar to thatdescribed in U.S. Pat. No. 5,509,140, or may be any other type of inktank that can be installed in cartridge 28 to supply ink to print heads56 a and 56 b.

FIG. 8 depicts a nozzle configuration for each of print heads 56 a and56 b. In FIG. 8, print head 56 a is for printing black ink and printhead 56 b is for printing color ink. Print head 56 a preferably includes304 nozzles at a 600 dpi pitch spacing. Print head 56 b preferablyincludes 80 nozzles at a 600 dpi pitch for printing cyan ink, 80 nozzlesat a 600 dpi pitch for printing magenta ink, and 80 nozzles at a 600 dpipitch for printing yellow ink. An empty space is provided between eachset of nozzles in print head 56 b corresponding to 16 nozzles spaced ata 600 dpi pitch. Each of print heads 56 a and 56 b eject ink based oncommands received from a controller on circuit board 35.

FIG. 9 is a block diagram showing the internal structures of hostprocessor 2 and printer 10. In FIG. 9, host processor 2 includes acentral processing unit 70 such as a programmable microprocessorinterfaced to computer bus 71. Also coupled to computer bus 71 aredisplay interface 72 for interfacing to display 4, printer interface 74for interfacing to printer 10 through bi-directional communication line76, floppy disk interface 9 for interfacing to floppy disk 77, keyboardinterface 79 for interfacing to keyboard 5, and pointing deviceinterface 80 for interfacing to pointing device 6. Disk 8 includes anoperating system section for storing operating system 81, anapplications section for storing applications 82, and a printer driversection for storing printer driver 84.

A random access main memory (hereinafter “RAM”) 86 interfaces tocomputer bus 71 to provide CPU 70 with access to memory storage. Inparticular, when executing stored application program instructionsequences such as those associated with application programs stored inapplications section 82 of disk 8, CPU 70 loads those applicationinstruction sequences from disk 8 (or other storage media such as mediaaccessed via a network or floppy disk interface 9) into random accessmemory (hereinafter “RAM”) 86 and executes those stored programinstruction sequences out of RAM 86. RAM 86 provides for a print databuffer used by printer driver 84. It should also be recognized thatstandard disk-swapping techniques available under the windowingoperating system allow segments of memory, including the aforementionedprint data buffer, to be swapped on and off of disk 8. Read only memory(hereinafter “ROM”) 87 in host processor 2 stores invariant instructionsequences, such as start-up instruction sequences or basic input/outputoperating system (BIOS) sequences for operation of keyboard 5.

As shown in FIG. 9, and as previously mentioned, disk 8 stores programinstruction sequences for a windowing operating system and fore variousapplication programs such as graphics application programs, drawingapplication programs, desktop publishing application programs, and thelike. In addition, disk 8 also stores color image files such as might bedisplayed by display 4 or printed by printer 10 under control of adesignated application program. Disk 8 also stores a color monitordriver in other drivers section 89 which controls how multi-level RGBcolor primary values are provided to display interface 72. Printerdriver 84 controls printer 10 for both black and color printing andsupplies print data for print out according to the configuration ofprinter 10. Print data is transferred to printer 10, and control signalsare exchanged between host processor 2 and printer 10, through printerinterface 74 connected to line 76 under control of printer driver 84.Printer interface 74 and line 76 may be, for example an IEEE 1284parallel port and cable or a universal serial bus port and cable. Otherdevice drivers are also stored on disk 8, for providing appropriatesignals to various devices, such as network devices, facsimile devices,and the like, connected to host processor 2.

Ordinarily, application programs and drivers stored on disk 8 first needto be installed by the user onto disk 8 from other computer-readablemedia on which those programs and drivers are initially stored. Forexample, it is customary for a user to purchase a floppy disk, or othercomputer-readable media such as CD-ROM, on which a copy of a printerdriver is stored. The user would then install the printer driver ontodisk 8 through well-known techniques by which the printer driver iscopied onto disk 8. At the same time, it is also possible for the user,via a modem interface (not shown) or via a network (not shown), todownload a printer driver, such as by downloading from a file server orfrom a computerized bulletin board.

Referring again to FIG. 9, printer 10 includes a circuit board 35 whichessentially contain two sections, controller 100 and print engine 101.Controller 100 includes CPU 91 such as an 8-bit or a 16-bitmicroprocessor including programmable timer and interrupt controller,ROM 92, control logic 94, and I/O ports unit 96 connected to bus 97.Also connected to control logic 94 is RAM 99. Control logic 94 includescontrollers for line feed motor 34, for print image buffer storage inRAM 99, for heat pulse generation, and for head data. Control logic 94also provides control signals for nozzles in print heads 56 a and 56 bof print engine 101, carriage motor 39, ASF motor 41, line feed motor34, and print data for print heads 56 a and 56 b. EEPROM 102 isconnected to I/O ports unit 96 to provide non-volatile memory forprinter information and also stores parameters that identify theprinter, the driver, the print heads, the status of ink in thecartridges, etc., which are sent to printer driver 84 of host processor2 to inform host processor 2 of the operational parameters of printer10.

I/O ports unit 96 is coupled to print engine 101 in which a pair ofprint heads 56 a and 56 b perform recording on a recording medium byscanning across the recording medium while printing using print datafrom a print buffer in RAM 99. Control logic 94 is also coupled toprinter interface 74 of host processor 2 via communication line 76 forexchange of control signals and to receive print data and print dataaddresses. ROM 92 stores font data, program instruction sequences usedto control printer 10, and other invariant data for printer operation.RAM 99 stores print data in a print buffer defined by printer driver 84for print heads 56 a and 56 b and other information for printeroperation.

Sensors, generally indicated as 103, are arranged in print engine 101 todetect printer status and to measure temperature and other quantitiesthat affect printing. A photo sensor (e.g., an automatic alignmentsensor) measures print density and dot locations for automaticalignment. Sensors 103 are also arranged in print engine 101 to detectother conditions such as the open or closed status of access door 12,presence of recording media, etc. In addition, diode sensors, includinga thermistor, are located in print heads 56 a and 56 b to measure printhead temperature, which is transmitted to I/O ports unit 96.

I/O ports unit 96 also receives input from switches 104 such as powerbutton 26 and resume button 24 and delivers control signals to LEDs 105to light indicator light 23, to line feed motor 34, ASF motor 41 andcarriage motor 39 through line feed motor driver 34 a, ASF motor driver41 a and carriage motor driver 39 a, respectively.

Although FIG. 9 shows individual components of printer 10 as separateand distinct from one another, it is preferable that some of thecomponents be combined. For example, control logic 94 may be combinedwith I/O ports 96 in an ASIC to simplify interconnections for thefunctions of printer 10.

FIG. 10 shows a high-level functional block diagram that illustrates theinteraction between host processor 2 and printer 10. As illustrated inFIG. 10, when a print instruction is issued from image processingapplication program 82 a stored in application section 82 of disk 8,operating system 81 issues graphics device interface calls to printerdriver 84. Printer driver 84 responds by generating print datacorresponding to the print instruction and stores the print data inprint data store 107. Print data store 107 may reside in RAM 86 or indisk 8, or through disk swapping operations of operating system 81 mayinitially be stored in RAM 86 and swapped in and out of disk 8.Thereafter, printer driver 84 obtains print data from print data store107 and transmits the print data through printer interface 74, tobi-directional communication line 76, and to print buffer 109 throughprinter control 110. Print buffer 109 resides in RAM 99, and printercontrol 110 resides in firmware implemented through control logic 94 andCPU 91 of FIG. 9. Printer control 110 processes the print data in printbuffer 109 responsive to commands received from host processor 2 andperforms printing tasks under control of instructions stored in ROM 92(see FIG. 9) to provide appropriate print head and other control signalsto print engine 101 for recording images onto recording media.

Print buffer 109 has a first section for storing print data to beprinted by one of print heads 56 a and 56 b, and a second section forstoring print data to be printed by the other one of print heads 56 aand 56 b. Each print buffer section has storage locations correspondingto the number of print positions of the associated print head. Thesestorage locations are defined by printer driver 84 according to aresolution selected for printing. Each print buffer section alsoincludes additional storage locations for transfer of print data duringramp-up of print heads 56 a and 56 b to printing speed. Print data istransferred from print data store 107 in host processor 2 to storagelocations of print buffer 109 that are addressed by printer driver 84.As a result, print data for a next scan may be inserted into vacantstorage locations in print buffer 109 both during ramp up and duringprinting of a current scan.

FIG. 11 depicts a block diagram of a combined configuration for controllogic 94 and I/O ports unit 96, which as mentioned above, I/O ports unit96 may be included within control logic 94. In FIG. 11, internal bus 112is connected to printer bus 97 for communication with printer CPU 91.Bus 112 is coupled to host computer interface 113 (shown in dashedlines) which is connected to bi-directional line 76 for carrying outbi-directional communication. As shown in FIG. 11, bi-directional line76 may be either an IEEE-1284 line or a USB line. Bi-directionalcommunication line 76 is also coupled to printer interface 74 of hostprocessor 2. Host computer interface 113 includes both IEEE-1284 and USBinterfaces, both of which are connected to bus 112 and to DRAM busarbiter/controller 115 for controlling RAM 99 which includes printbuffer 109 (see FIGS. 9 and 10). Data decompressor 116 is connected tobus 112, DRAM bus arbiter/controller 115 and each of the IEEE-1284 andUSB interfaces of host computer interface 113 to decompress print datawhen processing. Also coupled to bus 112 are line feed motor controller117 that is connected to line feed motor driver 34 a of FIG. 9, imagebuffer controller 118 which provides serial control signals and headdata signals for each of print heads 56 a and 56 b, heat timinggenerator 119 which provides block control signals and analog heatpulses for each of print heads 56 a and 56 b, carriage motor controller120 that is connected to carriage motor driver 39 a of FIG. 9, and ASFmotor controller 125 that is connected to ASF motor driver 41 a of FIG.9. Additionally, EEPROM controller 121 a, automatic alignment sensorcontroller 121 b and buzzer controller 121 c are connected to bus 112for controlling EEPROM 102, an automatic alignment sensor (generallyrepresented within sensors 103 of FIG. 9), and buzzer 106. Further, autotrigger controller 122 is connected to bus 112 and provides signals toimage buffer controller 118 and heat timing generator 119, forcontrolling the firing of the nozzles of print heads 56 a and 56 b.

Control logic 94 operates to receive commands from host processor 2 foruse in CPU 91, and to send printer status and other response signals tohost processor 2 through host computer interface 113 and bi-directionalcommunication line 76. Print data and print buffer memory addresses forprint data received from host processor 2 are sent to print buffer 109in RAM 99 via DRAM bus arbiter/controller 115, and the addressed printdata from print buffer 109 is transferred through controller 115 toprint engine 101 for printing by print heads 56 a and 56 b. In thisregard, heat timing generator 119 generates analog heat pulses requiredfor printing the print data.

FIG. 12 shows the memory architecture for printer 10. As shown in FIG.11, EEPROM 102, RAM 99, ROM 92 and temporary storage 121 for controllogic 94 form a memory structure with a single addressing arrangement.Referring to FIG. 11, EEPROM 102, shown as non-volatile memory section123, stores a set of parameters that are used by host processor 2 andthat identify printer and print heads, print head status, print headalignment, and other print head characteristics. EEPROM 102 also storesanother set of parameters, such as clean time, auto-alignment sensordata, etc., which are used by printer 10. ROM 92, shown as memorysection 124, stores information for printer operation that is invariant,such as program sequences for printer tasks and print head operationtemperature tables that are used to control the generation of nozzleheat pulses, etc. A random access memory section 121 stores temporaryoperational information for control logic 94, and memory section 126corresponding to RAM 99 includes storage for variable operational datafor printer tasks and print buffer 109.

A more detailed description of a line feed operation according to theinvention will now be made with reference to FIGS. 13 to 16F. Briefly,the following discussion provides a description of increasing the linefeed amount of the recording medium for each pulse of the line feedmotor to achieve a faster line feed speed than conventional printers,and based on the line feed amount for each scan, controlling the numberof print nozzles that are utilized for printing in each scan.

In increasing the line feed speed, the inventors herein have endeavoredto depart from the one-to-one line feed ratio of conventional printerswhere one line feed motor pulse provides a corresponding one pixel(maximum resolution pixel) line feed of the recording medium. Instead,the inventors have endeavored to provide for a line feed amount greaterthan one pixel for each motor pulse. Recall that in conventionalprinters that print in a 1200 dpi print resolution, one motor pulseresults in a one 1200 dpi pixel line feed of the recording medium. Thatis, one pulse of the line feed motor feeds the recording medium 1/1200inch and 1200 motor pulses are required to feed the recording medium oneinch. In contrast, the invention increases the line feed amount byincreasing the pixel/pulse ratio to be greater than 1 . For example, inone representative embodiment described below, the print heads have 600dpi resolution nozzles, and a pixel/pulse ratio of 1.5 in 600 dpiresolution (the resolution fo the print head) is utilized to increasethe line feed amount, and a 1200 dpi resolution print is achieved bymulti-pass scans (two scans) of the 600 dpi print heads. The pixel/pulseratio of 1.5 in a 600 dpi resolution corresponds to a pixel/pulse ratioof 3 in a 1200 dpi resolution. That is, for each pulse of the line feedmotor, a line feed amount of 3 pixels in 1200 dpi resolution is providedfor. A ratio of 3 pixel/pulse in 1200 dpi resolution provides a linefeed amount of 1/400 inch for each pulse of the line feed motor.Therefore, 400 motor pulses are required to feed the recording mediumone inch. Thus, a pixel/pulse ratio of 3 is three times faster than apixel/pulse ratio of 1 in a 1200 dpi printer.

This increase in line feed speed comes at minimal cost because existingmotors can be utilized (i.e. a faster line feed motor is not required toachieve a faster line feed speed). However, as will be described below,the invention not only provides for a faster line feed speed, but alsoprovides for printing in a high resolution. That is, although a fasterline feed speed is obtained by increasing the pixel/pulse ratio, a highresolution (e.g. 1200 dpi) image can still be printed by controlling thenumber of nozzles that are utilized in each scan based on the line feedamount. A more detailed description of the increased pixel/pulse ratiowill now be made, with a more detailed description of the nozzle controlfollowing thereafter.

As described above with regard to FIG. 5, line feed motor 34 drives linefeed shaft 36 via line feed geartrain 40. Line feed shaft 36 includesline feed rollers 36 a. When a sheet of a recording medium engages linefeed rollers 36 a, it is pinched between line feed rollers 36 a andpinch rollers 36 b. As the line feed motor rotates, it engages geartrain40 to turn line feed rollers 36 a, thereby feeding the sheet through theprinter. As stated above, line feed motor 34 may be a stepper motor thatrotates in pulsed increments. Each pulse of line feed motor 34 feeds thesheet of the recording medium through the printer. The amount of linefeed of the recording medium for each pulse of the line feed motordepends on several factors, including the incremental pulse value of theline feed motor (i.e. the number of degrees of rotation for each pulseof the line feed motor), the geartrain ratio, and the line feed rollersize.

As mentioned above, each of these factors have been set in prior artsystems to provide a pixel/pulse ratio of 1. In the present invention,each of these factors (motor pulse amount, geartrain ratio and line feedroller size) are set so that one pulse of the line feed motor results ina line feed ratio greater than one. One example of a line feed motor,geartrain, and line feed roller design to achieve a 1.5 pixel/pulse linefeed ratio in a pixel resolution of a print head will now be describedwith reference to FIGS. 13 to 15. It should be noted that a 1.5pixel/pulse ratio in a pixel resolution of a print head is not the onlyratio that may be used in practicing the invention and other line feedratios may be also be utilized to achieve a faster line feed speed. Forinstance, the invention may be applied to a printer with line feedratios of n.5 pixel/pulse, n.25 pixel/pulse, n.333 pixel/pulse, n.75pixel/pulse, etc., where n is a whole number greater than one. However,for brevity, only a ratio of 1.5 will be discussed.

In one representative embodiment, the invention utilizes a line feedmotor that is a 200 pulse, 2—2 phase stepper motor. A 200 pulse motorprovides a 1.8° step amount for each pulse (360°×200 pulses=1.8°/pulse).Line feed motor 34 also preferably provides for a speed rating of up toat least 4800 pulse/sec (pps) (1440 RPM). As will be described below, a1440 RPM speed rating, combined with the geartrain ratio and the linefeed roller size provide for a line feed speed of up to 12 inches/sec.Of course, the invention is not limited to utilizing the foregoing motorspecifications and any other motor could be utilized instead. Theforegoing motor specifications are merely one example of a line feedmotor that could be used in practicing the invention and variations inthe motor could be implemented to achieve a faster line feed is speed.However, the foregoing line feed motor specifications have been includedin the present example of a 1.5 pixel/pulse line feed amount in theresolution of the print head.

Line feed motor 34 engages and drives geartrain 40. One example ofgeartrain 40 is depicted in more detail in FIGS. 13 and 14. As seen inFIGS. 13 and 14, line feed motor 34 includes pinion 40 a connected todrive shaft 34 a of line feed motor 34. Pinion 40 a engages and drivesgear 40 b. Gear 40 b is connected to pinion 40 c so that they rotatetogether when gear 40 b is driven by pinion 40 a. In this regard, gear40 b and pinion 40 c may be molded together as one entity, or may beseparate gears attached to a common shaft. Pinion 40 c engages anddrives gear 40 d. Gear 40 d is connected to and drives line feed driveshaft 36.

Drive shaft 36 includes line feed rollers 36 a attached to drive shaft36. Line feed rollers 36 a are preferably made of a rubber material inorder pick up the recording medium and feed it through the printer withminimum slippage. Additionally, line feed rollers 36 a are approximately16.17 mm in diameter. Of course, a different line feed roller size andmaterial could also be implemented in the present invention. Line feedrollers 36 a are engaged by pinch rollers 36 b which are attached to theprinter chassis and apply pressure against the recording medium when itis engaged and driven by line feed rollers 36 a. In the present exampleof a 1.5 pixel/pulse line feed amount in theresolution the print head,the geartrain ratio has been designed to be approximately 1:8.3333.

Of course, the invention is not limited to the geartrain configurationand ratio shown in FIGS. 13 and 14 and any other geartrain design couldbe implemented to achieve the results of the present invention. However,the geartrain shown in FIGS. 13 and 14 has been implemented, inconjunction with the motor specifications described above, to achievethe line feed amount of 1.5 pixel/pulse of the present example.

FIG. 15 is a diagram depicting a geartrain similar to geartrain 40 fordetermining a paper velocity utilizing a motor specification, ageartrain ratio and a line feed roller size. In FIG. 15, motor 234drives pinion 240 a, which drives gear 240 b and pinion 240 c. Pinion240 c drives gear 240 d that is connected to and drives line feed roller236 a.

In order to obtain a desired line feed amount (ΔP) for each pulse of theline feed motor (in this case a 1.5 pixel/pulse ratio or a 1/400 inchline feed amount), each of the foregoing elements are designed toprovide the desired feed amount. The following formula can be utilizedto obtain the desired feed amount.${\Delta \quad P} = {R \times \frac{Z_{1} \times Z_{3}}{Z_{2} \times Z_{4}} \times \Delta \quad \theta_{1}}$

In FIG. 15, θ₁ generally represents one pulse (step amount) of the linefeed motor, Z₁, Z₂, Z₃ and Z₄, generally represent gears 240 a, 240 b,240 c and 240 d, R generally represents the diameter of line feed roller236 a, and ΔP represents the line feed amount. In the present example, aΔP of 1/400 inch is the desired line feed amount. Therefore, utilizingthe foregoing motor specification, geartrain ratio and line feed rollersize, a 1/400 (or 1.5 pixel/pulse) line feed amount is achieved for aprinter that prints in 1200 dpi resolution.

As stated above, the line feed motor preferably provides for at least a4800 pps speed rating. Utilizing the line feed amount (ΔP=1/400 inch)and the motor pulse rate (4800 pps), the paper velocity can bedetermined from the equation, ΔV_(p)=ΔP×pulse rate. Therefore, a papervelocity of up to 12 inch/sec can be achieved.

Although a faster line feed speed (1/400) is achieved by the foregoingline feed drive assembly design, the invention further provides forcontrol over the number of print head nozzles and the line feed motorpulses utilized in printing an image in order to achieve a printed imagewith the desired resolution. For a better understanding, consider FIGS.16A to 16D.

FIG. 16A depicts a sample pattern of ink droplets printed at a 600dpi×600 dpi resolution and FIG. 16B depicts a sample pattern of inkdroplets printed at a 1200 dpi×1200 dpi resolution. In each of FIGS. 16Aand 16B, the print head scans from right to left in a forward scan andfrom left to right in a reverse scan, and the line feed direction isfrom top to bottom (meaning that the paper is advanced in a top tobottom direction so that the print head nozzles move from Row 1 towardsRow 2 when the paper is advanced.

A description will now be made with regard to FIGS. 16C and 16D of a 600dpi×600 dpi print for a line feed ratio of 1.5 pixel/pulse, where onepixel is a 1200 dpi pixel (the maximum resolution of the printer is 1200dpi). For each of FIGS. 16C and 16D, the print head nozzles are assumedto be spaced at a 600 dpi interval, similar to the print head describedwith regard to FIG. 8. In FIG. 16C, ink droplets (indicated by the soliddark dots) have been printed in one scan of the print head on rows 1, 3and 5, each spaced 600 dpi apart along the line feeding direction. Afterthe first scan of the print head, the recording medium is advanced for asecond scan of the print head. As seen in FIG. 16C, one pulse of theline feed motor results in a 1.5 pixel line feed of the paper. That is,the paper is fed one and one-half 600 dpi pixels by one pulse of theline feed motor. If the print head were to perform a scan and print inkdroplets after one pulse of the line feed motor, ink droplets would beprinted at the locations shown by the white dots. Printing after onepulse would not provide a clear 600 dpi image since the ink dropletswould be offset (in the line feeding direction) by one 1200 dpi pixel.

As shown in FIG. 16D, two line feed motor pulses are needed to advancethe paper to perform a clear 600 dpi print. As such, for a 600 dpi printmode, increments of six 1200 dpi pixels are performed (corresponding to2 motor pulses) in order to obtain a clear 600 dpi image.

To summarize the foregoing, in a printer that has a maximum printresolution of 1200 dpi and a line feed ratio of 1.5 pixel/pulse in theresolution of the print head (600 dpi), for printing in a 600 dpi mode,line feed increments of 6 (1200 dpi) pixels are utilized based on twomotor pulses, and for printing in a 1200 dpi mode, line feed incrementsof 3 (1200 dpi) pixels are utilized based on one motor pulse. However,in order to utilize line feed increments of 3 or 6 pixels, the number ofnozzles that are available for printing in any one scan are controlledto correspond to the line feed increments.

For example, in the prior art systems that have a one pixel/pulse linefeed ratio, controlling the number of nozzles available for printing wasgenerally not a factor. For instance, if a print head having 304 nozzleswere implemented in the prior art systems to print a continuous image(i.e., an image with ink droplets printed by each nozzle in every scan),all 304 nozzles could be made available for printing in each scan. Thatis, a first scan could print with all 304 nozzles and, due to the onepixel/pulse line feed ratio, the paper could easily be advanced 304pixels to line up the print head nozzles for printing the next scan,without regard to the line feed ratio. The paper can be advanced onepixel at a time to provide for printing the continuous image without anygaps because a whole number of motor pulses result in a whole numberpixel advancement.

However, in the present invention, if the same continuous image were tobe printed with the same 304 nozzle print head, but the line feed ratiowere changed to 1.5 pixel/pulse in the resolution of the print head, acontinuous image could not be printed using all 304 nozzles. That is, ifall 304 nozzles were used for printing and the paper needed to beadvanced 304 pixels for printing the next scan, the line feed ratiowould result in either a gap in the continuous image, or an overlap inthe image. For instance, as stated above, to maintain a continuous imageat 600 dpi with a 1.5 pixel/pulse ratio in 600 dpi resolution, line feedincrements of 3 pixels in 600 dpi are required. An advancement of 304pixels divided by increments of 3 pixels in 600 dpi results in 202.667motor pulses to achieve a continuous image. Since a fractional motorpulse can not be obtained in a stepper motor, the best advancement thatcould be obtained would be either 303 (600 dpi) pixels (202 motorpulses), which would result in an overlap of one 600 dpi pixel, or 300(600 dpi) pixels (200 motor pulses), which would result in an overlap offour 600 dpi pixels. Therefore, not all of the 304 nozzles are availablefor printing and the print head nozzles are controlled to provide for acontinuous image based, at least in part, on the line feed amount. In a600 dpi print mode, an increment of the line feed motor is two motorpulses, corresponding to 3 pixels of 600 dpi. In a 1200 dpi print mode,an increment of the line feed motor is one motor pulse, corresponding to3 pixels of 1200 dpi (1.5 pixels of 600 dpi).

The number of nozzles available for printing are controlled, in part, bythe print driver. Although the print head contains 304 black nozzles and80 color nozzles for each of cyan, magenta and yellow inks, the printdriver is configured for a number of nozzles that are evenly divisibleby the line feed ratio. In the example where the line feed ratio is setto 1.5 pixel/pulse in 600 dpi, the print driver is configured for 300black nozzles and 78 color nozzles. 300 black nozzles allows for a 300(600 dpi) pixel line feed advancement utilizing 200 motor pulses.Likewise, 78 color nozzles allows for a 78 (600 dpi) pixel line feedadvancement utilizing 52 motor pulses. Therefore, for printing thecontinuous image, a first scan is performed to print with 300 nozzles,then the paper is fed 600 (1200 dpi) pixels (200 line feed motor pulses)to print the next scan similarly, for color, the first scan prints 78nozzles and the paper is advanced 156 (1200 dpi) pixels (52 line feedmotor pulses) to print the next scan. As a result, a continuous imagecan be printed without gaps or overlap in the printed pixels while atthe same time, maintaining a faster line feed speed.

In controlling the number of nozzles, for the black print head having304 nozzles, the print driver and printer are set-up to nominally printwith nozzles 3 to 302, with nozzles 1, 2, 303 and 304 being (virtually)unavailable. That is, the print driver is nominally set-up to utilizethe memory positions for nozzles 3 to 302. However, depending upon theprint data and the line feed amount, the print driver may adjust thememory locations to shift up or down one or two nozzles. That is, theprint driver may shift the data in the memory to utilize nozzles 1 to300 (down two nozzles), 2 to 301 (down one nozzle), 4 to 303 (up onenozzle) or 5 to 304 (up two nozzles) depending on the image data to beprinted and the line feed amount. Additionally, the printer ASIC may beutilized to mechanically shift the nozzles being utilized for printing.

Of course, as stated above, the invention is not limited to the 1.5pixel/pulse line feed ratio in the resolution of the print head (600dpi) in conjunction with 300 black and 78 color nozzles and othercombinations could be provided for to obtain an increased line feedspeed over the one pixel/pulse ratio. For instance, if a line feed ratioof 1.25 pixel/pulse in 600 dpi were utilized, 300 black and 80 colornozzles could also be utilized to obtain a continuous printed image (300pixels+1.25=240 motor pulses, 80 pixels+1.25=64 motor pulses). In thiscase, the maximum printable resolution is 2400 dpi. Similarly, if a linefeed ratio of 1.333 pixel/pulse in 600 dpi were utilized, 300 black and80 color nozzles could be utilized (300 pixels+1.333˜225 motor pulses,80 pixels+1.333˜60 motor pulses). In this case, the maximum printableresolution is 1800 dpi.

A description will now be made with regard to FIGS. 17 and 18 of controlover line feed and buffer loading for printing black data where whitespaces are encountered in the print buffer loading as the first line ofdata. FIG. 17 is a flowchart depicting process steps performed in aprint driver for loading of a print buffer for black print data.Briefly, the process steps perform rasterization, color conversion andhalftoning of the image data. Then the print buffer is loadedline-by-line with the loading process determining which line in thebuffer to begin loading data based on whether a white space (no blackprint data) is present as the first line of data.

In step S1701, the print driver rasterizes the image data from a displayresolution to a print resolution. For instance, the print driver mayconvert the image data from a typical 72 dpi display resolution to a 300dpi×300 dpi print resolution. A 300 dpi×300 dpi rasterization resolutionmay be utilized where the printer prints in 300, 600, 1200, etc. dpimodes.

The rasterized image data is then subjected to a color conversionprocess in step S1702 to convert multivalue RGB (Red, Green and Blue)values for each pixel of the rasterized image into CMYK (cyan, magenta,yellow and black) values for printing. Then, the CMYK values for theimage are stored in respective memory blocks for each of the colorvalues (step S1703). It should be noted that the process steps of FIG.17 generally apply to black data and not color data. Therefore, thepresent discussion of FIG. 17 is limited to a case for printing blackdata. After the data is stored in the memory blocks, the image data issubjected to a halftoning process in step S1704. After the halftoningprocess, the buffer loading process begins.

In the following discussion of the buffer loading, two scenarios will bediscussed: a case where the first line being loaded in the buffercontains black data, and a case where the first (x) lines of data to beloaded in the buffer do not contain any black data, i.e. they representwhite space. Additionally, the following discussion relates to a casewhere the buffer is being loaded for printing in the middle of a page.That is, some data has already been printed on the page and the paper isready to be fed through the printer by the line feed motor for printingthe next scan. The process steps will be described generally and thenexamples will be presented for further understanding.

In step S1705, the next line of data is obtained. Then, in step S1706, adetermination is made whether any data is currently being stored in theprint buffer. That is, a determination is made whether the print buffercurrently contains at least one line of data. In a case where the printbuffer has just released the print data to the printer and the data hasbeen printed, this determination would be NO since the current line ofdata is the first line of data to be loaded into the empty print buffer.If however, there is at least one line of data in the print buffer, thenflow proceeds to step S1712 where the current line, whether it containsblack data or not, is stored in the next line of the print buffer. Then,a determination is made whether the buffer is full, and if so, the datais sent to the printer for printing. If the buffer is not full, thenflow returns to step S1705 to get the next line of data. At this point,a loop is entered into between steps S1705, S1706, S1712 and S1713 untilthe print buffer is fully loaded, at which point flow exits the loop tostep S1714 to send the data in the buffer to the printer for printing.Returning to step S1706, if a determination is made that no data iscurrently in the print buffer, then a determination is made whether thecurrent line is all white data (step S1707). In a case where the currentline is the first line being loaded into the print buffer and thecurrent line contains black data, flow proceeds to steps S1708, S1709,S1710 and S1711. In this case, the black line is merely stored in thefirst line of the print buffer and flow returns to step S1705 wherebythe foregoing loop (S1705, S1706, S1712, S1713) is entered into untilthe print buffer is full.

If however, a determination is made in step S1707 that the current lineof data is all white, then a line counter value (Lcount) is incrementedby one (step S1715) to account for the current white space line. Then,flow returns to step S1705 to get the next line. In the case where thefirst line of data is white space, then for the next pass through theprocess steps, flow would proceed from step S1705 to S1706 and back toS1707. If the second (current) line of data is also white (i.e. does notcontain any black data), then a loop is entered into between stepsS1705, S1706, S1707 and S1715 until a line of black data is encountered.

Once a line of black data is encountered in step S1707, then in stepS1708 a skip amount (SkipA) is calculated. The skip amount determineshow many lines the paper is to be fed to account for the white space.That is, step S1708 determines how many lines the line feed motor willadvance the paper due to the white space. The SkipA value is determinedby dividing the Lcount (the number of lines of white data that werecounted in step S1715) by Y, where Y is the number of pixelscorresponding to the amount of line feed for one pulse of the line feedmotor. For instance in a case where the line feed ratio is 1.5 in 600dpi, it corresponds to 3 pixels in 1200 dpi. That is, where the linefeed ratio in the print head resolution is (m×1/n), the number of pixelsin a print resolution printed by the printer corresponds to the linefeed amount for one pulse of the line feed motor. The result of thecalculation in step S1708 is rounded down to the nearest whole number.Therefore, step S1708 performs integer math that leaves a remainder. Forexample, in a case where 8 lines of white space are encountered and theline feed ratio is 1.5, Lcount would be 8 and the result of step S1708would be 2 (8/3=2, with a remainder of 2). Therefore, the print driverwould determine that the paper is to be advanced 2 pulses whichcorresponds to six 1200 dpi pixels.

After the skip amount is calculated in step S1708, a buffer offsetamount (Boffset) is calculated in step S1709. The buffer offset valuedetermines which line in the print buffer to begin loading the blackprint data to account for the remainder in step S1708. The value Boffsetis calculated by the formula

Boffset=Lcount−(SkipA×Y).

In the foregoing case where Lcount was 8, the line feed ratio was 1.5 in600 dpi (3 pixels in 1200 dpi) and SkipA was calculated to be 2, thebuffer offset would be 2 (8 −(2×3)=2), which corresponds to theremainder from step S1708. Then, in step S1710, the starting position inthe print buffer for loading the black data of the current line isadjusted. In the present example, the starting position in the printbuffer would be adjusted by two lines and the first two lines of theprint buffer would be left blank with the black data of the current linebeing loaded in line three of the print buffer. The current line is thenstored in the print buffer (step S1711) with flow returning to stepS1705, whereby the S1705, S1706, S1712, S1713 loop is entered into untilthe print buffer is full.

For a better understanding of the process steps, consider the followingexamples. In the following examples, it is assumed that the line feedratio has been set to 1.5 pixel/pulse in the resolution of the printhead (600 dpi). Therefore, as described above, although print head 56 acontains 304 nozzles, only 300 nozzles are utilized in any one scan toaccommodate the line feed ratio of 1.5 pixel/pulse in 600 dpi.Accordingly, only 300 lines of the print buffer are utilized.Additionally, it is assumed that the print buffer has just been filledand the print data sent to the printer in step S1714. Therefore, atleast one scan has been performed and the paper is ready to be fed bythe line feed motor for printing the next line.

Two examples will be discussed. The first example discusses a case wherethe next line of data (the first line to be processed for filling theprint buffer for the next scan) contains black data. The second examplediscusses a case where the next 31 lines of data do not contain anyblack data and therefore represent white space.

In the first example, in step S1705, the next line of data is obtained.In step S1706, a determination is made whether there is currently anydata in the print buffer. Since the print buffer has just been emptiedand the current pass through the process steps is for the first line ofthe print buffer, the result of the determination is NO and flowproceeds to step S1707.

In step S1707, a determination is made whether the current line is allwhite, i.e. whether it contains any black data. In the present example,the first line does contain black data and therefore the result of thedetermination is NO and flow proceeds to step S1708.

In step S1708, the Skip amount (SkipA) is calculated. Since the value ofLcount is zero (i.e., step S1715 has not been carried out to incrementthe Lcount value), the result of the calculation in step S1708 is zero.Similarly, the result of step S1709 (Boffset) is zero and no adjustmentis made in the buffer loading in step S1710. Therefore, the current lineis stored in the first line of the print buffer (step S1711) and flowreturns to step S1705 to obtain the next line.

Since the first line of data has been stored in the print buffer, stepS1706 results in a YES determination and the next line is stored in theprint buffer in step S1712. The next line is stored in the print bufferregardless of whether it contains black data or not. Then, adetermination is made whether the print buffer is full in step S1713.Since the print buffer holds 300 lines of data and the current pass onlyfills the second line, the result of the determination is NO and flowreturns to step S1705 to obtain the next line.

At this point, a continuous loop is entered into between steps S1705,S1706, S1712 and S1713 until all 300 lines of the print buffer have beenfilled. When all 300 lines of the print buffer have been filled, thenthe result of step S1713 is YES and flow proceeds to step S1714 wherethe data in the print buffer is sent to the printer. After the data hasbeen sent to the printer in step S1714, flow returns to step S1705 toobtain the next line.

At this point, a second example will be discussed in which the next 31lines do not contain black data and therefore represent white space. Assuch, in step S1706 a determination is made whether there is any data inthe print buffer. Since the print buffer has just been emptied, theresult of the determination is No and flow proceeds to step S1707.

In step S1707, a determination is made whether the current line is allwhite data, i.e. whether it contains any black data. Since the first 31lines are white space, the result of the determination is YES and flowproceeds to step S1715. In step S1715, a value Lcount is incremented byone from 0 to 1. Then flow proceeds to step S1705 to obtain the nextline.

After obtaining the second line in step S1705, a determination is madein step S1706 whether there is any data in the print buffer. Since thefirst line was white data, nothing was stored in the print buffer andthe result of the determination is NO. Therefore, flow proceeds to stepS1707, whereby it is determined that the current line is again all whiteand the value Lcount is again incremented by one, this time from 1 to 2.

This loop between steps S1705, S1706, S1707 and S1715 continues for thefirst 31 lines since each of the first 31 lines are all white. As such,the value of Lcount is incremented to 31 before flow returns to stepS1705 for the thirty-second line of data.

After the thirty-second line of data is obtained in step S1705, theresult of the determination in step S1706 is still NO since none of thefirst 31 lines of data have been stored in the buffer. Therefore, flowproceeds to step S1707 where a NO determination is made since thecurrent, line contains black data. As such, flow proceeds to step S1708.

In step S1708, the skip amount is calculated. The skip amount isdetermined by the formula SkipA=Lcount/Y. Recall that Lcount has beenincremented for each of the first 31 lines to a value of 31 and thevalue for Y is 3(line feed ratio of 1.5 pixel in the print headresolution or m×1/n in the print head resolution, where m equal 3 andequals 2 and Y equals 3). Therefore, SkipA is calculated to be 10 units(31/3=10, with a remainder of 1). As a result, the paper would be fed 10motor units, or 10 pulses which corresponds to 30 pixels.

In step S1709, the buffer offset (Boffset) is calculated to be 1(Boffset=(31−(10×3)=1). Then, the starting position in the print bufferis offset by the value Boffset, here one line. Accordingly, the firstline of the print buffer is left blank and the data begins loading tostore the current line in the second line of the print buffer. Flow thenreturns to step S1705, whereby the S1705, S1706, S1712 and S1713 loop isentered into to process the next 299 lines of data.

Once all 299 lines of data have been filled, the data is released to theprinter for printing.

FIG. 18 is a flowchart depicting process steps for performing a processsimilar to that of FIG. 17. The process steps are preferably performedin a print driver for loading of a print buffer for black print data.Briefly, the process steps perform rasterization, color conversion andhalftoning of the image data. Then the print buffer is loaded Y lines ata time, where Y corresponds to the number of pixels to be printedcorresponding to the amount of line feed for one pulse of the line feedmotor. For example, in the case described above where the line feedratio is 1.5 pixel/pulse in a print head resolution of 600 dpi, Y wouldbe 3. That is, one line feed motor pulse of the line feed motor wouldfeed the recording medium three 1200 dpi pixels for printing in a 1200dpi print mode, and two motor pulses of the line feed motor would feedthe recording medium three 600 dpi pixels (or six 1200 dpi pixels) forprinting in a 600 dpi print mode. Therefore, for each of these twocases, Y is equal to 3.

FIG. 18 will be described in a case where Y equals 3 for a 600 dpi printmode. Of course, the same steps would apply if the printer were printingin a 1200 dpi print mode since Y would also be 3. Three examples will bepresented with regard to FIG. 18. In the each of the examples, similarto the discussion of FIG. 17, it will be assumed that the print bufferhas just been emptied and that the next lines of data being processedare the first lines to be loaded into the print buffer. In a firstexample, the first line of data being processed contains black data. Ina second example, the first two lines of data to be loaded into theprint buffer are white data and the third line contains black data.Finally, in a third example, the first thirty-one lines of data to beloaded into the print buffer are white data and the thirty-second linecontains black data.

In FIG. 18, steps S1801 to S1804 are the same as steps S1701 to S1704described above. Therefore, the description of these steps will not berepeated here.

In the first example, in step S1605, the next Y lines (3 lines in thepresent example) of print data are obtained. Then, in step S1806, adetermination is made whether a flag “skip” is set to 0. Nominally, whenthe print buffer is emptied in step S1814, the skip flag is set to 1.Therefore, in the present case, the print driver determines in stepS1806 that the skip flag is set to 1 and flow proceeds to step S1807.

In step S1807, a determination is made whether all of the Y linescontain white data. This step determines whether or not the line feedmotor is to feed the recording medium a number of lines corresponding tothe line feed ratio to skip the white space. In the present example, theprint driver determines whether all of the first 3 lines of data arewhite. Since the present example contains black data in the first lineof data, the result of the determination in step S1807 is NO and flowproceeds to step S1808.

Step S1808 increments the buffer offset in order to adjust the loadingof the print buffer to accommodate white data encountered as the first(x) lines of data. Therefore, step S1808 increments the buffer offset(Boffset) by the number of lines of white data encountered before a linethat contains black data is encountered. In the present case where Y is3, the most white lines of data that could be encountered before a linewith black data would be encountered would be 2. In the present examplewhere the first line of data contains black data, the value of Boffsetis not incremented and flow proceeds to step S1809 where the skip flagis set to 0.

Then, in step S1810, the starting position for loading the print datainto the print buffer is adjusted based on the value of Boffset. In thepresent example, Boffset is 0 and therefore the first line of print datais loaded into the first line of the print buffer. Accordingly, in stepS1811, the first 3 lines of print data are loaded into the print bufferin lines 1 to 3 of the print buffer, respectively.

Flow then returns to step S1805 to obtain the next Y (3) line of data.Then, in step S1806, the print driver determines that the skip flag is 0since the skip flag was set to 0 in step S1809. Accordingly, flowproceeds to step S1812 where the current 3 lines of data are stored inthe print buffer. Then, step S1813 determines whether the print bufferis full. Since the print buffer contains 300 lines (corresponding to the300 nozzles utilized for printing black data with print head 56 a), thedetermination is NO and flow returns to step S1805.

The process continues in the S1805, S1806, S1812, S1813 loop until all300 lines of the print buffer have been filled with print data. When thebuffer is full, then flow proceeds from step S1813 to step S1814 wherethe skip flag is reset to 1, and SkipA and the print data are sent tothe printer, thereby emptying the print buffer. In the present case,SkipA is 0 since flow did not pass through step S1815.

Next, a second example will be discussed in which, after the printbuffer is emptied from the first example described above, the print datafor the next Y (3) lines is obtained in step S1805. In the present(second) example, recall that the first two lines of data are white dataand that the third line contains black data.

In step S1806, the print driver determines that the skip flag is 1 (itwas reset to 1 in step S1814 when the print buffer was emptied for thefirst example). Then, in step S1807, the print driver determines thatall of the Y (3) lines of data are not all white. That is, only thefirst two lines are all white, but the third line contains black data.Therefore, flow proceeds to step S1808.

In step S1808, the buffer offset (Boffset) is incremented by the numberof lines of all white data that are encountered before a line withblacks data is encountered. In the present example, the first two linesof data are all white and therefore Boffset is incremented by two. Then,in step S1809 the skip flag is set to 0 and flow proceeds to step S1810.

In step S1810, the starting position for loading the print data in theprint buffer is adjusted based on the value of Boffset. In the presentexample, the starting position is adjusted by two lines since Boffset is2. Therefore, in step S1811, the first two lines in the print buffer areskipped and the first line that contains black data (the third line ofthe 3 Y lines in the present example) is loaded into line three of theprint buffer. Flow then proceeds to step S1805 to obtain the next Y (3)lines of data.

In step S1806, the print driver determines that the skip flag is 0 andtherefore, flow proceeds to step S1812. At this point, the loop S1805,S1806, S1812, S1813 is entered into until the print buffer has beenfilled. Once the print buffer has been filled, flow proceeds to stepS1814 where the skip flag is reset to 1 and SkipA (again, 0 in thepresent example) and the print data are sent to the printer, therebyemptying the print buffer.

At this point, a third example will be discussed in which the firstthirty-one lines of print data to be loaded into the print buffer allcontain white data. In step S1805, the next Y (3) lines of print dataare obtained, and in step S1806, the print driver determines that theskip flag is 1, whereby flow proceeds to step S1807.

In step S1807, the print driver determines that all of the Y (3) linesof data are white. Therefore, flow proceeds to step S1815 where thevalue SkipA is incremented by one. Each increment of SkipA correspondsto Y, such that each increment of SkipA results in a line feed of 3pixels. For example, in the present case where the printer is printingat 600 dpi and SkipA is 1, the line feed motor performs two motor pulsesto feed the recording medium three 600 dpi pixels, thereby skipping the3 white space lines.

Flow then returns to step S1805 where the next Y (3) lines of data areobtained. In step S1806, the print driver determines that the skip flagis still set to 1 and therefore flow proceeds to step S1807. In thesecond pass through step S1807 of the current example, the print driveragain determines that all 3 lines of data are white and therefore, flowagain proceeds to step S1815 where, SkipA is incremented from 1 to 2.Flow continues in this S1805, S1806, S1807, S1815 loop for the firstthirty lines (10 passes) since the first thirty-one lines are all whitedata. Accordingly, SkipA is incremented to 10 before the eleventh passof through the process steps.

In the eleventh pass, step S1806 determines that the skip flag is stillset to 0 and therefore flow proceeds to step S1807. In step 1807, theprint driver determines that all of the Y (3) lines do not contain whitedata and therefore flow proceeds to step S1808. In step S1808, thebuffer offset (Boffset) value is incremented by 1. Recall that the firstthirty-one lines of data where all white and therefore, for the currentpass through the process steps, one line of white data (the thirty-firstline) is encountered before a line containing black data is encountered.

Flow then proceeds to steps S1809, S1810 and S1811 where the skip flagis set to 0, the starting position for loading of the print data in theprint buffer is adjusted by one line, and lines 32 and 33 of the printdata are stored in the print buffer in lines 2 and 3, respectively. Flowthen returns to step S1805 where the S1805, S1806, S1812, S1813 loop isentered into until all 300 lines of the print buffer have been filled,whereby flow proceeds to step S1814. In step S1814, the skip flag isreset to 1 and the SkipA value (10) and the print data are sent to theprinter. When the printer receives the SkipA value, the line feed motoradvances the recording medium a number of pulses corresponding Y, in thepresent example, where the print is in 600 dpi resolution, 30 (600 dpi)lines or 20 motor pulses.

The invention has been described with respect to particular illustrativeembodiments. It is to be understood that the invention is not limited tothe above-described embodiments and that various changes andmodifications may be made by those of ordinary skill in the art withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. A printer that prints an image having aresolution higher than a resolution of nozzles on a print head on arecording medium by scanning the print head across a region of therecording medium a plural-number of times, said print head havingnozzles spaced at a nozzle pitch which is a reciprocal number of theresolution of the nozzles and adapted to eject ink from the nozzles onthe basis of print data, comprising: a line feeding motor that isactuated in a unit of a pulse; a line feeding device, driven by the linefeeding motor actuated in the unit of the pulse, for feeding therecording medium in a unit of a predetermined feeding length fed by anactuating pulse, said predetermined feeding length being (m/k×nozzlepitch), where k is the resolution of the printed image/the resolution ofthe nozzles, m and k are integers, and m is greater than k butindivisible by k; and a controller for controlling the line feedingmotor to actuate in the unit of the pulse and for controlling a numberof the nozzles utilized for printing the image when printing an image onthe recording medium by scanning the print head across the recordingmedium a plural-number of times.
 2. A printer according to claim 1,wherein m equals 3 and k equals
 2. 3. A printer according to claim 2,wherein the predetermined feeding length fed by the line feed motor bythe actuating pulse corresponds to a length of 3 line feeds in theresolution of the printed image.
 4. A printer according to claim 2,wherein said print head has 304 nozzles and the controller controls theusage of the 304 nozzles so that 300 or less nozzles are used forprinting in any one scan of the print head.
 5. A printer according toclaim 2, wherein said print head has 80 nozzles and the controllercontrols the usage of the 80 nozzles so that 78 or less nozzles are usedfor printing in any one scan of the print head.
 6. A printer accordingto claim 1, wherein the resolution of the nozzles is 600 dpi and theresolution of the printed image is 1200 dpi.
 7. A printer according toclaim 1, wherein when data of blank space lines is included in the printdata, the controller controls the line feeding motor to skip the blankspace lines by continuously outputting a number of the actuating pulsesaccording to the feeding length of the space lines.
 8. A printeraccording to claim 7, wherein the print head has a black printhead and acolor printhead, and the controller controls the line feeding motor toskip the blank space lines when the blank space lines are included inthe print data for the black printhead.
 9. A printer according to claim7, wherein the printer comprises a print buffer to store the print data,and the controller has a calculator for calculating an amount of offsetto store print data in the print buffer based on the number of the blankspace lines and the number of the actuating pulses for the skip.
 10. Amethod of printing an image having a resolution higher than a resolutionof nozzles on a print head on the recording medium by scanning the printhead across a region of the recording medium a plural-number of times,said print head having nozzles spaced at a nozzle pitch which is areciprocal number of the resolution of the nozzles, and adapted to ejectink from the nozzles on the basis of print data, comprising the stepsof: printing an image on the recording medium by scanning the print headacross a region of the recording medium n times and ejecting ink fromthe nozzles, with controlling a number of the nozzles utilized forprinting the image; and feeding the recording medium between one scanand a next scan for printing, in a unit of a predetermined feedinglength fed by a line feeding device driven by a line feeding motor thatis actuated in a unit of a pulse, said predetermined feeding lengthbeing fed by an actuating pulse being (m/k×nozzle pitch), where k is theresolution of the printed image/the resolution of the nozzles, m and kare integers, and m is greater than k but indivisible by k.
 11. A methodaccording to claim 10, wherein m equals 3 and k equals
 2. 12. A methodaccording to claim 11, wherein the predetermined feeding length fed bythe line feed motor by the actuating pulse corresponds to a length of 3line feeds in the resolution of the printed image.
 13. A methodaccording to claim 11, wherein said print head has 304 nozzles and theusage of the 304 nozzles is controlled so that 300 or less nozzles areused for printing in any one scan of the print head.
 14. A methodaccording to claim 11, wherein said print head has 80 nozzles and thethe usage of the 80 nozzles is controlled so that 78 or less nozzles areused for printing in any one scan of the print head.
 15. A methodaccording to claim 10, wherein the resolution of the nozzles is 600 dpiand the resolution of the printed image is 1200 dpi.